#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//1.输入一个整数，如果是正数，再判断奇数还是偶数；如果不是正数则输出负数
//int main()
//{
//	int num;
//	printf("请输入一个整数：");
//	scanf("%d", &num);
//	if (num < 0)
//	{
//		printf("负数");
//	}
//		
//	else
//	{
//		if (num % 2 == 0)
//			printf("偶数");
//		else 
//			printf("奇数");
//	}
//	return 0;
//}
//2.输入一个人的年龄；
//年龄<18,打印“少年”
//年龄18-44,打印“青年”
//年龄45-59,打印“中老年”
//年龄60-89,打印“老年”
//年龄>90,打印“寿星”
//int main()
//{
//	int age;
//	printf("请输入一个人的年龄：");
//	scanf("%d", &age);
//	if (age < 18)
//	{
//		printf("少年");
//	}
//	else if(age < 44)
//			printf("青年");
//	else if (age > 44 && age < 59)
//			printf("中老年");
//	else if (age > 59 && age < 89)
//			printf("老年");
//	else
//			printf("寿星");
//	return 0;
//}
//3.使用条件表达式实现找两个数中的较大值
//int main()
//{
//	int num1,num2,max;
//	printf("请输入两个数：");
//	scanf("%d%d", &num1,&num2);
//	max = num1 > num2 ? num1:num2;
//	printf("最大值为%d",max);
//	return 0;
//}
//4.输入3个实数，要求按从小到大的顺序输出
//int main()
//{
//	int num1,a,b,c,tmp;
//	printf("请输入三个数：");
//	scanf("%d%d%d", &a,&b,&c);//a<b<c
//	if (a > b)
//	{
//		tmp = a;
//		a = b;
//		b = tmp;
//	}
//	if (a > c)
//	{
//		tmp = a;
//		a = c;
//		c = tmp;
//	}
//	if (b > c)
//	{
//		tmp = b;
//		b = c;
//		c = tmp;
//	}
//	printf("按从小到大的顺序输出:%d %d %d", a, b, c);
//	return 0;
//}
//5.输入3个任意整数，找出其中的最大值
//int main()
//{
//	int num1,num2,num3,max;
//	printf("请输入三个整数：");
//	scanf("%d%d%d", &num1,&num2,&num3);
//	if (num1 > num2)
//	{
//		if (num1 > num3)
//			max = num1;
//		else
//			max = num3;
//
//	}
//	else
//	{
//		if(num2>num3)
//			max = num2;
//
//		else
//			max = num3;
//
//	}
//	printf("max=%d\n", max);
//
//	return 0;
//}
// 6.键盘输入一个字符，若该字符为小写字母，则将其转换为大写字母；
// 若该字符为大写字母，则将其转换为小写字母；否则转换为ASCLL码表中该字符的下个字符
//int main()
//{
//	char ch,c1, c2, other;
//	printf("请输入一个字符：");
//	scanf("%c", &ch);
//	if (ch >= 'a' && ch <= 'z')
//		printf("%c",c2 = ch - 32);
//	else if (ch >= 'A' && ch <= 'Z')
//		printf("%c",c1 = ch + 32 );
//	else
//		printf("%c",other = ch + 1);
//	return 0;
//}
//7.闰年判断(标准格式实现)
// 闰年的条件：能被4整除并且被100整除不等于0；能被400整除；
//int main()
//{
//	int year, leap;
//	printf("请输入一个年份：");
//	scanf("%d", &year);
//	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
//		leap = 1;
//	else
//		leap = 0;
//	if (leap == 1)
//		printf("%d年为闰年", year);
//	else
//		printf("%d年不是闰年", year);
//}
//8.输入任意一个整数值，计算除3之后的余数
//if语句实现
//int main()
//{
//	int num;
//	printf("请输入一个整数：");
//	scanf("%d", &num);
//	if (num % 3 == 1)
//		printf("余数为1");
//	else if(num % 3 == 2)
//		printf("余数为2");
//	else
//		printf("余数为0");
//	return 0;
//}
//switch语句实现
//int main()
//{
//	int num;
//	printf("请输入一个整数：");
//	scanf("%d", &num);
//	switch (num % 3)
//	{
//	case 0:
//		printf("余数为0");
//		break;
//	case 1:
//		printf("余数为1");
//		break;
//	case 2:
//		printf("余数为2");
//		break;
//	}
//
//}
//9.输入一个1-7的数字，打印对应的星期几（1-5为工作日，6-7为休息日）
//int main()
//{
//	int day;
//	printf("请输入一个天数：");
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("工作日");
//				break;
//	case 6:
//	case 7:
//		printf("休息日");
//		break;
//
//	
//	}
//
//}
//10.输入一个3位的整数，判断是否为升序数。若输入的不是3位数，输出"Enter error"
//int main()
//{
//	int num,a,b,c;
//	printf("请输入一个3位的整数：");//538
//	scanf("%d", &num);
//
//	if (num < 99 || num > 999)//若满足条件，则不是三位数
//		printf("Enter error");
//	else
//	{
//		a = num % 10;//8
//		b = num / 10 % 10;//3
//		c = num / 100 % 10;//5
//		if (a < b && b < c)
//			printf("%d为升序数 ", num);
//		else
//			printf("%d不是升序数 ", num);
//	}
//	return 0;
//}
////11.在屏幕上打印1-10的值
//int main()
//{
//	int i;
//	for (i = 1; i <= 10; i++)
//	{
//		printf("%d ", i);
//	}
//	return 0;
//}
//12.输入一个正的整数，逆序打印这个整数的每一位
//int main()
//{
//	int num, a, b, c;
//	printf("请输入一个正的整数：");//369
//	scanf("%d", &num);
//	a = num % 10;
//	b = num / 10 % 10;
//	c = num / 100 % 10;
//	printf("%d %d %d", a, b, c);
//}
//int main()
//{
//	int i,n;
//	printf("请输入一个正整数：");
//	scanf("%d", &n);
//	while (n)
//	{
//		i = n % 10;
//		printf("%d ",i );
//		n = n / 10;
//	}
//
//	return 0;
//}
//13.计算1-100之间3的倍数的数字之和
//int main()
//{
//	int i,sum=0;
//	for (i = 1; i <= 100; i++)
//	{
//		if (i % 3 == 0)
//		sum = sum + i;
//	}
//	printf("%d", sum);
//}
//14.输入一个正整数，计算这个整数是几位数
//int main()
//{
//	int a, count = 0;
//	printf("请输入一个正整数：");
//	scanf("%d", &a);
//	do 
//	{
//	a = a / 10;
//	count++;
//	} while (a);
//	printf("%d\n", count);
//	return 0;
//}
// int main()
//{
//	int a, count = 0;
//	printf("请输入一个正整数：");
//	scanf("%d", &a);
//	while (a)
//	{
//		a = a / 10;
//		count++;
//	} 
//	printf("这个整数是%d位数\n", count);
//	return 0;
//}
//15.输入一个正整数n,求n!
//int main()
//{
//	int n,sum;
//	printf("输入一个正整数:");
//	scanf("%d", &n);
//	sum = 1;//阶乘初始值为1
//	for (int i = 1; i <= n; i++)
//	{
//		sum = sum * i;//累乘器
//	}
//	printf("%d!=%d",n,sum);
//	return 0;
//}
//16.输出1900-2000年中所有的闰年。每输出3年换一行
//int main()
//{
//	int year, count=0;
//	for (year = 1900; year <= 2000; year++)
//	{
//		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
//		{
//			printf("%d ", year);
//			count++;
//			if (count % 3 == 0)
//			printf("\n");
//		}
//		
//	}
//	return 0;
//}
//17.打印100-200之间的素数(只能被1和本身整除)
//int main()
//{
//	int flag,count=0;
//	for (int i = 100; i <= 200; i++)
//	{
//		flag = 1;//假设flag为素数
//		for (int j = 2; j < i; j++)
//		{
//			if (i % j == 0)//若能被整除，则不是素数
//			{
//				flag = 0;
//				break;//转到外循环
//			}
//		}
//		if (flag == 1)//若都不能被整除，则为素数
//		{
//			printf("%d ", i);//打印素数
//			count++;
//			
//		}
//			
//	}
//		printf("\n共有%d个素数", count);//计算素数个数
//	return 0;
//}
//18.输入一个正整数n，求由1到n的累加后的值
//int main()
//{
//	int n,sum;
//	printf("输入一个正整数:");
//	scanf("%d", &n);
//	sum = 0;//阶乘初始值为0
//	for (int i = 1; i <= n; i++)
//	{
//		sum = sum + i;//累加器
//	}
//	printf("由1到%d的和：%d",n,sum);
//	return 0;
//}
//19.输入10个数，输出其中的最大数  求解思路：定义max，输入x并且赋给max，在后续循环里，每输入一个数都与max比较，若比max大，则x赋给max
//int main()
//{
//	int i, max;
//	printf("请输入第1个数：");
//	scanf("%d",&i);
//	max = i;
//	for (int j = 2; j <= 10; j++)
//	{
//		printf("请输入第%d个数:", j);
//		scanf("%d", &i);
//		if (i > max)
//			max = i;
//	}
//	printf("其中最大数为%d", max);
//}
//20.输出所有的水仙花数（1.分解一个三位数的个、十、百位 2.水仙花的条件：num=a*a*a+b*b*b+c*c*c 3.通过循环遍历所有的三位数）
//int main()
//{
//	int num, a, b, c,count=0;
//	for (num = 100; num < 1000; num++)
//	{
//		a = num / 100 % 10;//分别取得这个数的每一位
//		b = num / 10 % 10;
//		c = num % 10;
//		if (num == a * a * a + b * b * b + c * c * c)//满足水仙花的条件
//		{
//			count++;
//			printf("%d ", num);//循环打印
//			if (count % 2 == 0)
//				printf("\n");
//		}	
//	}
//	printf("共有%d个水仙花数", count);
//	return 0;
//}
// 21.输入一个正整数，判断是否为完数 如：6=1+2+3
// 完数的定义：其真因子之和等于该数本身  真因子：除了这个数本身的数 
// 首先输入一个正整数,然后循环i试除1到num-1；若满足num%i==0则为真因子，累加起来，最后将累加起来的数与num比较，相等则为完数                                                                           
//int main()
// {
//	int num, i;
//	int sum = 0;
//	printf("请输入一个数：");
//	scanf("%d", &num);
//	for (i = 1; i < num; i++)//整除除了num本身外的数，满足则为因子
//	{
//		if (num % i == 0)//真因子判断
//			sum = sum + i;//真因子累加
//	}
//	if (num == sum)//完数的条件
//		printf("这个数是完数");
//	else
//		printf("这个数不是完数");
// }
//22.输入若干个字符，统计大写英文字母、小写英文字母、数字字符和其它字符的个数
//int main()
//{
//	int upper, lower, digit, other,i;
//	char ch;
//	upper = lower = digit = other = 0;
//	printf("请输入10个字符：");
//	for (i = 1; i <= 10; i++)
//	{
//		ch = getchar();
//		if (ch >='A' && ch <= 'Z')
//			upper++;
//		else if (ch>='a' && ch <= 'z')
//			lower++;
//		else if (ch >= '1' && ch <= '9')
//			digit++;
//		else
//			other++;
//	}
//	printf("大写字母有%d个，小写字母有%d个，数字有%d个，其它有%d个", upper, lower, digit, other);
//
//
//
//	return 0;
//}
//23.输出1000以内的全部完数，要求每行输出5个，并统计完数的个数
//int main()
//{
//	int i, j, sum, count;
//	count = 0;//全局变量，统计个数
//	for (i = 2; i < 1000; i++)
//	{
//		sum = 0;//局部变量，外循环清0
//		for (j = 1; j < i; j++)
//		{
//			if (i % j == 0)//真因子判断
//				sum = sum + j;//真因子累加
//		}
//		if (sum == i)//完数的条件
//		{
//			printf("%d ", i);
//			count ++;
//			if (count % 5 == 0)//每五个一行
//				printf("\n");
//		}
//	}
//	printf("共有%d个完数", count);
//}
//24.求最大公约数和最小公约数
//辗转相除法，先求最大公约数，最小公倍数=两数乘积/最大公约数。
//设有两整数a和b：
//a%b得余数c
//若c == 0，则b即为两数的最大公约数
//若c！ = 0，则a = b，b = c，再回去执行第一步
//int main()
//{
//	int m, n, a, b, max, min;
//	printf("请输入两个数：");
//	scanf("%d%d", &m, &n);//输入两个数
//	a = m % n;//求余数
//	b = m * n;//两数乘积
//	while (a != 0)
//	{
//		m = n;
//		n = a;
//		a = m % n;
//	}
//	max = n;//求得最大公约数
//	min = b / n;//求得最小公倍数
//	printf("%d和%d的最大公约数和最小公倍数分别是%d和%d", m, n, max, min);
//	return 0;
//}
//25.打印所有字符
//int main()
//{
//	for (int i = 32; i < 128; i++)
//	{
//		printf("%c ", i);
//		if (i % 16 == 0)
//			printf("\n");
//	}
//	return 0;
//}
//26.求1！+2！+3！+......+10!
//int main()
//{
//	int i, j;
//	double factorial, sum = 0;
//	for (i = 1; i <= 10; i++)//外循环
//	{
//		factorial = 1;
//		for (j = 1; j <= i; j++)//内循环
//		{
//			factorial = factorial * j;//累乘
//		}
//			sum = sum + factorial;//累加
//	}
//	printf("1！+2！+3！+......+10!=%.0f", sum);
//	return 0;
//}
//27.输出乘法口诀表
//int main()
//{
//	int i, j;
//	for (i = 1; i < 10; i++)//行数
//	{
//		for (j = 1; j <=i; j++)//列数
//		{
//			printf("%d*%d=%d\t", j, i, i * j);//  /t:水平制表符 
//		}
//		printf("\n");
//	}
//}
//28.将一个正整数分解为质因数 如 90=2*3*3*5
//质因数：它本身是质数（素数）又是一个数的因素
//步骤：1.若这个整数刚好等于质数，结束打印
//2.若这个整数能被最小因数(从2开始)整除，则打印此因数
//3.若这个整数不能被最小因数整除，则最小因数+1，再回到第一步，依次循环
//int main()
//{
//	int m = 90;
//	for (int n = 2; n <= m; n++)
//	{
//		while (m % n == 0)
//		{
//			printf("%d ",n);
//			m = m / n;
//		}
//	}
//	return 0;
//}
//int main()
//{
//	int m = 90;
//	int n = 2;//最小质数
//	printf("%d=", m);
//	do
//	{
//		if (m % n == 0)//判断是否为因子
//		{
//			printf("%d*", n);
//			m = m / n;//缩小因子倍
//		}
//		else
//			n++;
//	} while (m != n);
//		printf("%d",n);//输出最后一个因子
//}
//29.将10-20之间的正整数分解质因数
//int main()
//{
//	int m, n,k;
//	for (m = 10; m <= 20; m++)
//	{
//		n = 2;//局部变量 最小质数
//		k = m;//局部变量  注：不能直接用m循环（全局变量）
//		printf("%d=",k);
//		do
//		{
//			if (k % n == 0)//判断是否为因子
//			{
//				printf("%d*", n);
//				k = k / n;//缩小因子倍
//			}
//			else
//				n++;//最小质数自增
//		} while (k!=n);
//		printf("%d\n",n);//输出最后一个因子
//	}
//	return 0;
//}
//30.猜数字   设置随机数：srand((unsigned int)time(NULL))   设置随机数的范围：生成a-b的随机数-->a+rand()%(b-a+1)  
//#include<stdlib.h>
//#include<time.h>
//void menu()
//{
//	printf("**************************\n");
//	printf("*******1. play ***********\n");
//	printf("*******0. exit ***********\n");
//	printf("**************************\n");
//}
//void game()
//{
//	int r = rand() % 100+1;//设置随机数的范围0-100
//	int guess;
//	int count = 5;//设置5次机会
//	printf("你共有5次机会\n");
//	while (count)
//	{
//		printf("请猜数字：");
//		scanf("%d",&guess);
//		if (guess > r)
//			printf("猜大了！\n");
//		else if(guess<r)
//			printf("猜小了！\n");
//		else
//		{
//			printf("恭喜，猜对了！\n");//猜对就要跳出循环
//			break;
//		}	
//		count--;//次数减一
//		printf("你还剩%d次机会\n",count);
//	}
//	if (count == 0)
//		printf("你失败了，正确的值为：%d\n",r);
//}
//int main()
//{
//	int input;//定义输入值
//	srand((unsigned int)time(NULL));//设置随机值
//	
//	do
//	{
//		menu();
//		printf("请输入你的选择：");
//		scanf("%d",&input);
//		switch (input)
//		{
//		case 0:
//			printf("游戏结束!");
//			break;
//		case 1:
//			game();
//			break;
//		default:
//			printf("输入错误，请重新选择\n");
//			break;
//		}
//	} while (input);
//	return 0;
//}
//31.数一下 1到 100 的所有整数中出现多少个数字9
/*
思路：
1. 给一个循环从1遍历到100，拿到每个数据后进行一下操作
2.  a. 通过%的方式取当前数据的个位，检测个位数据是否为9
		 如果是，给计数器加1
	b. 通过/的方式取当前数据的十位，检测十位数据是否是9，
		  如果是，给计数器加1
  循环一直继续，直到所有的数据检测完，所有9的个数已经统计在count计数中。
*/
//int main()
//{
//	int i;
//	int count = 0;
//	for (i = 1; i < 100; i++)
//	{
//		if (i % 10 == 9)
//		{
//			printf(" %d ",i);
//			count++;
//		}
//			
//		if (i / 10 == 9)
//		{
//			printf(" %d ", i);
//			count++;
//		}
//			
//	}
//	printf("\n共有%d个数字9", count);
//}
//32.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值，打印出结果
/*
思路：
1. 从上述表达式可以分析出
   a. 该表达式主要由100项，基数项为正，偶数项为负
2. 设置一个循环从1~100，给出表达式中的每一项：1.0/i, 注意此处不能使用1，否则结果全部为0
	然后使用flag标记控制奇偶项，奇数项为正，偶数项为负
	然后将所有的项相加即可
*/
//int main()
//{
//	int i;
//	double sum = 0.0;
//	int flag = 1;
//	for (i = 1; i <= 100; i++)
//	{
//		sum = sum + flag * 1.0 / i;//累加
//		flag = -flag;//控制奇偶
//	}
//	printf("1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100的和是：%lf",sum);
//}
//33.输入描述：题目有多组输入数据，每一行输入三个a，b，c(0 < a, b, c < 1000)，作为三角形的三个边，用空格分隔。
//输出描述：针对每组输入数据，输出占一行，如果能构成三角形，等边三角形则输出“Equilateral triangle!”，等腰三角形则输出“Isosceles triangle!”，其余的三角形则输出“Ordinary triangle!”，反之输出“Not a triangle!”。
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    while(~scanf("%d %d %d", &a, &b, &c))
    {
        if((a+b>c) && (a+c>b) && (b+c>a))
        {
            //三角形
            if(a==b && b==c)//等边三角形
            {
                printf("Equilateral triangle!\n");
            }
            else if(((a==b)&&(b!=c)) || ((a==c)&&(c!=b)) || ((b==c)&&(c!=a)))//等腰
            {
                printf("Isosceles triangle!\n");
            }
            else
            {
                printf("Ordinary triangle!\n");
            }
        }
        else
        {
            //不是三角形
            printf("Not a triangle!\n");
        }
    }
    return 0;
}
  